﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace _010_列表的创建和使用//以数组类似
{
    class Program
    {
        static void Main(string[] args)
        {
            //常规的列表创建
            //创建了一个空的列表 通过类型后面的<>来表示这个列表存储的数据的类型
            //列表是一个对象要实例化
            //List<int> ScoreList = new List<int>();


            //在添加元素时列表的容量一般为四，没有元素时一般为零
            //当列表的元素超过容量四时，则会扩大为容量8,以此类推

            //匿名列表的写法
            var scoreList = new List<int>();
            //创建了一个初始量为10的列表，当容量不够用的是好，每次都会按照原来容量的2倍进行扩容
            List<int> intList = new List<int>(10);

            //声明列表的时候填充初始值
            //var scoreList = new List<int>(){1,2,3};

            //我们可以通过Capacity属性获取和设置容量
            intList.Capacity = 100;

            //容量是列表可以装多少的大小，并且他不够用可以增大容量
            //要与列表中元素个数做区分
            Console.WriteLine("Capacity:" + intList.Capacity + ",Count:" + intList.Count);
            Console.WriteLine("Capacity:" + scoreList.Capacity + ",Count:" + scoreList.Count);
            //向列表中插入数据的方法
            scoreList.Add(12);//从尾部插入
            Console.WriteLine("Capacity:" + scoreList.Capacity + ",Count:" + scoreList.Count);
            scoreList.Add(42);//跟在12后面
            Console.WriteLine("Capacity:" + scoreList.Capacity + ",Count:" + scoreList.Count);
            Console.WriteLine(scoreList[0]);//根据索引值返回数据
            //Console.WriteLine(scoreList[2]);//索引不存在的时候会出现异常

            Console.ReadKey();

        }
    }
}
